/**
 * <p>Title: Obstacle.java</p>
 * <p>Description: CS 343 Final Project. This class contains the the obstacle itself</p>
 * @author Tim Olmstead, Brady Fetting, Erik Brown, Thales Kirk
 * @email timothy.olmstead@my.uwrf.edu, brady.fetting@my.uwrf.edu, 
 * 			erik.brown@my.uwrf.edu, thales.kirk@my.uwrf.edu
 * @date November 15, 2013
 */
package Obstacles;

import java.awt.Image;
import java.awt.Polygon;

public abstract class Obstacle {

	private int xloc;
	private int yloc;
	private int width;
	private int height;

	public Obstacle() {
	}

	/**
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @description sets the location and size of the obstacle
	 */
	public Obstacle(int x, int y, int width, int height) {
		this.xloc = x;
		this.yloc = y;
		this.width = width;
		this.height = height;
	}

	public abstract Image getImage();

	public abstract void move();

	public abstract Polygon getPolygon();

	/**
	 * @param none
	 * @description gets the x location of the obstacle
	 */
	public synchronized int getXloc() {
		return xloc;
	}

	/**
	 * @param xloc
	 * @description sets the x location of the obstacle
	 */
	public synchronized void setXloc(int xloc) {
		this.xloc = xloc;
	}

	/**
	 * @param none
	 * @description gets the y location of the obstacle
	 */
	public synchronized int getYloc() {
		return yloc;
	}

	/**
	 * @param yloc
	 * @description sets the y location of the obstacle
	 */
	public synchronized void setYloc(int yloc) {
		this.yloc = yloc;
	}

	/**
	 * @param none
	 * @description gets the width of the obstacle
	 */
	public int getWidth() {
		return width;
	}

	/**
	 * @param width
	 * @description sets the width of the obstacle
	 */
	public void setWidth(int width) {
		this.width = width;
	}

	/**
	 * @param none
	 * @description gets the height of the obstacle
	 */
	public int getHeight() {
		return height;
	}

	/**
	 * @param height
	 * @description sets the height of the obstacle
	 */
	public void setHeight(int height) {
		this.height = height;
	}

}
